#Used for defining commands such as "!google"
#will be parsed as a method for a Commands subclass
#google(nick, channel, params)
#channel is the channel the message was said in
class Commands
     @@bot = nil
     attr_accessor :channel_names
     def initialize
          @channel_names = {}
     end
     def self.associated_bot
          return @@bot
     end
     def self.bot(bot)
          @@bot = bot
     end
     def self.inherited(cmd)
          Sribi.add_commands(cmd)
     end
     def self.user_methods=(methods)
          @@user_methods = methods
     end
     def self.user_methods
          return @@user_methods
     end
     
     private
     def channel_join(chan)
          @@bot.channel_join(chan)
     end
     def private_message(nick, message)
          @@bot.private_message(nick, message)
     end
     def private_action(nick, action)
          @@bot.private_action(nick, action)
     end
     def channel_message(chan, message)
          @@bot.channel_message(chan, message)
     end
     def channel_action(chan, action)
          @@bot.channel_action(chan, action)
     end
     def ctcp_send(target, type, data)
          @@bot.ctcp_send(target, type, data)
     end
     
     def notice(target, message)
          @@bot.notice(target, message)
     end
     def ctcp_ping(target)
          @@bot.ctcp_ping(target)
     end
     def ctcp_source(target)
          @@bot.ctcp_source(target)
     end
     def ctcp_userinfo(target)
          @@bot.ctcp_userinfo(target)
     end
     
     
     def method_missing(method, *args)
          command_unfound(method.to_s, *args)
     end
     def command_unfound(command, *args)
          
     end
     def on_private_message(sender, message)
          
     end
     def raw_irc_message(message)
          
     end
     def on_channel_message(sender, message, channel)
          
     end
     def loop_iterate
          
     end
     def version(sender)
          ctcp_send(sender, "version", Sribi.version)
     end
     def version_info(sender, info)
          
     end
     def time_info(sender, info)
          
     end
     def source_info(sender, info)
          
     end
     def client_info(sender, info)
          
     end
     def ctcp_pong(sender)
     
     end
     def recv_ctcp(sender, type, data)
     
     end

end